//
// RUNTIME ERROR CODE DEFINES
//

#ifndef _CRUNTIMERUNTIMEERROR_H_
#define _CRUNTIMERUNTIMEERROR_H_

// RANGE VALUE DEFINES
#define			MAXIMUMVALUE							22000000
#define			MAXIMUMANGLE							360
#define			MAXIMUMALPHAVALUE						255
#define			MAXIMUMRGB								255
#define			MAXIMUMRGBCOMPONENT						255
#define			MAXIMUMQUADVERTEX						3

// GENERAL CODES
#define			RUNTIMEERROR_GENERICERROR				0
#define			RUNTIMEERROR_TRIEDTORUNFUNCTIONHEADER	21
#define			RUNTIMEERROR_ARRAYACCESSEDOUTOFBOUNDS	51
#define			RUNTIMEERROR_ARRAYINDEXINVALID			52
#define			RUNTIMEERROR_ARRAYEMPTY					53
#define			RUNTIMEERROR_ARRAYTYPEINVALID			54
#define			RUNTIMEERROR_ARRAYMUSTBESINGLEDIM		55

#define			RUNTIMEERROR_NOTENOUGHMEMORY			101
#define			RUNTIMEERROR_INVALIDARRAYUSE			102
#define			RUNTIMEERROR_FILETOOLARGE				103
#define			RUNTIMEERROR_INVALIDFILE				104
#define			RUNTIMEERROR_FILENOTEXIST				105
#define			RUNTIMEERROR_FILEEXISTS					106
#define			RUNTIMEERROR_STRINGLENGTHOVERFLOW		107
#define			RUNTIMEERROR_STACKOVERFLOW				108
#define			RUNTIMEERROR_INVALIDARRAY				109
#define			RUNTIMEERROR_MUSTBEPOSITIVEVALUE		110
#define			RUNTIMEERROR_DIVIDEBYZERO				111
#define			RUNTIMEERROR_SYNCRATEINVALID			112
#define			RUNTIMEERROR_RANDOMVALUEPOSITIVE		113
#define			RUNTIMEERROR_CANONLYINCREMENTVARIABLE	114
#define			RUNTIMEERROR_CANONLYDECREMENTVARIABLE	115
#define			RUNTIMEERROR_COMMANDNOWOBSOLETE			116
#define			RUNTIMEERROR_FILEISLOCKED				117

#define			RUNTIMEERROR_SPRITEERROR				300
#define			RUNTIMEERROR_SPRITEILLEGALNUMBER		301
#define			RUNTIMEERROR_SPRITENOTEXIST				302
#define			RUNTIMEERROR_SPRITEBACKSAVEILLEGAL		303
#define			RUNTIMEERROR_SPRITETRANSPARENCYILLEGAL	304
#define			RUNTIMEERROR_SPRITEROTATIONILLEGAL		310
#define			RUNTIMEERROR_SPRITESCALEILLEGAL			311
#define			RUNTIMEERROR_SPRITESIZEILLEGAL			312
#define			RUNTIMEERROR_SPRITEANGLEILLEGAL			313
#define			RUNTIMEERROR_SPRITEALPHAVALUEILLEGAL	314
#define			RUNTIMEERROR_SPRITERGBCOMPONENTILLEGAL	315
#define			RUNTIMEERROR_SPRITEANIMDELAYILLEGAL		316
#define			RUNTIMEERROR_SPRITEVERTEXILLEGAL		317
#define			RUNTIMEERROR_SPRITEWIDTHILLEGAL			318
#define			RUNTIMEERROR_SPRITEHEIGHTILLEGAL		319
#define			RUNTIMEERROR_SPRITEHANIMCOUNTILLEGAL	320
#define			RUNTIMEERROR_SPRITEALREADYTEXISTS		321

#define			RUNTIMEERROR_IMAGEERROR					500
#define			RUNTIMEERROR_IMAGEILLEGALNUMBER			501
#define			RUNTIMEERROR_IMAGENOTEXIST				502
#define			RUNTIMEERROR_IMAGEGRABTOOLARGE			503
#define			RUNTIMEERROR_IMAGEAREAILLEGAL			504
#define			RUNTIMEERROR_IMAGETOOBIGASTEXTURE		505
#define			RUNTIMEERROR_IMAGELOADFAILED			506
#define			RUNTIMEERROR_IMAGELOCKED				507

#define			RUNTIMEERROR_BITMAPERROR				1000
#define			RUNTIMEERROR_BITMAPILLEGALNUMBER		1001
#define			RUNTIMEERROR_BITMAPNOTEXIST				1002
#define			RUNTIMEERROR_BITMAPLOADFAILED			1003
#define			RUNTIMEERROR_BITMAPSAVEFAILED			1004
#define			RUNTIMEERROR_BITMAPCREATEFAILED			1005
#define			RUNTIMEERROR_BITMAPZERONODELETE			1006
#define			RUNTIMEERROR_BITMAPBOTHSAME				1007
#define			RUNTIMEERROR_BITMAPSOURCETOOLARGE		1008
#define			RUNTIMEERROR_BITMAPZERORESERVED			1009
#define			RUNTIMEERROR_BITMAPREGIONEXCEEDED		1010
#define			RUNTIMEERROR_BITMAPAREASINVALID			1011
#define			RUNTIMEERROR_BITMAPBLURVALUEILLEGAL		1012
#define			RUNTIMEERROR_BITMAPFADEVALUEILLEGAL		1013
#define			RUNTIMEERROR_BITMAPGAMMAILLEGAL			1014

#define			RUNTIMEERROR_SCREEN						1500
#define			RUNTIMEERROR_SCREENSIZEILLEGAL			1501
#define			RUNTIMEERROR_SCREENDEPTHILLEGAL			1502
#define			RUNTIMEERROR_SCREENMODEINVALID			1503
#define			RUNTIMEERROR_NOTSUPPORTDISPLAY			1504
#define			RUNTIMEERROR_NOTSUPPORTDISPLAY16B		1505
#define			RUNTIMEERROR_NOTSUPPORTDISPLAY24B		1506
#define			RUNTIMEERROR_NOTSUPPORTDISPLAY32B		1507
#define			RUNTIMEERROR_NOTSUPPORTDISPLAYVB		1508
#define			RUNTIMEERROR_NOTSUPPORTDISPLAYLOCK		1509
#define			RUNTIMEERROR_NOTSUPPORTDISPLAYNODX		1510
#define			RUNTIMEERROR_NOTSUPPORTDISPLAYINVALID	1511
#define			RUNTIMEERROR_NOTSUPPORTDISPLAYNOTAVAIL	1512
#define			RUNTIMEERROR_NOTSUPPORTDISPLAYNOVID		1513
#define			RUNTIMEERROR_24BITNOTSUPPORTED			1514

#define			RUNTIMEERROR_ANIMERROR					2000
#define			RUNTIMEERROR_ANIMNUMBERILLEGAL			2001
#define			RUNTIMEERROR_ANIMLOADFAILED				2002
#define			RUNTIMEERROR_ANIMALREADYEXISTS			2003
#define			RUNTIMEERROR_ANIMNOTEXIST				2004
#define			RUNTIMEERROR_ANIMVOLUMEILLEGAL			2005
#define			RUNTIMEERROR_ANIMFREQILLEGAL			2006
#define			RUNTIMEERROR_ANIMALREADYPLAYING			2007
#define			RUNTIMEERROR_ANIMNOTPLAYING				2008
#define			RUNTIMEERROR_ANIMALREADYPAUSED			2009
#define			RUNTIMEERROR_ANIMNOTPAUSED				2010

#define			RUNTIMEERROR_SOUNDERROR					3000
#define			RUNTIMEERROR_SOUNDNUMBERILLEGAL			3001
#define			RUNTIMEERROR_SOUNDLOADFAILED			3002
#define			RUNTIMEERROR_SOUNDALREADYEXISTS			3003
#define			RUNTIMEERROR_SOUNDNOTEXIST				3004
#define			RUNTIMEERROR_SOUNDVOLUMEILLEGAL			3005
#define			RUNTIMEERROR_SOUNDFREQILLEGAL			3006
#define			RUNTIMEERROR_SOUNDPANVALUEILLEGAL		3007
#define			RUNTIMEERROR_SOUNDSAVEFAILED			3008
#define			RUNTIMEERROR_SOUNDCANNOTBECLONED		3021
#define			RUNTIMEERROR_SOUNDMUSTSPECIFYSOUND		3022
#define			RUNTIMEERROR_SOUNDMUSTSPECIFYCLONE		3023

#define			RUNTIMEERROR_NOSPEECHENGINE				3201

#define			RUNTIMEERROR_MUSICERROR					3500
#define			RUNTIMEERROR_MUSICNUMBERILLEGAL			3501
#define			RUNTIMEERROR_MUSICLOADFAILED			3502
#define			RUNTIMEERROR_MUSICALREADYEXISTS			3503
#define			RUNTIMEERROR_MUSICNOTEXIST				3504
#define			RUNTIMEERROR_MUSICVOLUMEILLEGAL			3505
#define			RUNTIMEERROR_MUSICSPEEDILLEGAL			3506
#define			RUNTIMEERROR_MUSICNOTPLAYING			3507
#define			RUNTIMEERROR_MUSICTRACKILLEGAL			3508

#define			RUNTIMEERROR_INPUTCONTROLLERNOTAVAIL	4001
#define			RUNTIMEERROR_INPUTNOCONTROLLERSELECTED	4002
#define			RUNTIMEERROR_INPUTFORCEFEEDBACKNOTAVAIL 4101
#define			RUNTIMEERROR_INPUTFFMAGNITUDEERROR		4102
#define			RUNTIMEERROR_INPUTFFDURATIONERROR		4103
#define			RUNTIMEERROR_INPUTFFANGLEERROR			4104

#define			RUNTIMEERROR_MEMBLOCKRANGEILLEGAL		5101
#define			RUNTIMEERROR_MEMBLOCKALREADYEXISTS		5102
#define			RUNTIMEERROR_MEMBLOCKNOTEXIST			5103
#define			RUNTIMEERROR_MEMBLOCKCREATIONFAILED	5104
#define			RUNTIMEERROR_MEMBLOCKOUTSIDERANGE		5105
#define			RUNTIMEERROR_MEMBLOCKSIZEINVALID		5106
#define			RUNTIMEERROR_MEMBLOCKNOTABYTE			5107
#define			RUNTIMEERROR_MEMBLOCKNOTAWORD			5108
#define			RUNTIMEERROR_MEMBLOCKNOTADWORD			5109

#define			RUNTIMEERROR_B3DERROR					7000
#define			RUNTIMEERROR_B3DMESHNUMBERILLEGAL		7001
#define			RUNTIMEERROR_B3DMESHLOADFAILED			7002
#define			RUNTIMEERROR_B3DMESHNOTEXIST			7003
#define			RUNTIMEERROR_B3DMESHDARKENILLEGAL		7004
#define			RUNTIMEERROR_B3DMESHLIGHTENILLEGAL		7005
#define			RUNTIMEERROR_B3DMODELNUMBERILLEGAL		7006
#define			RUNTIMEERROR_B3DMODELALREADYEXISTS		7007
#define			RUNTIMEERROR_B3DMODELNOTEXISTS			7008
#define			RUNTIMEERROR_B3DMATRIXALREADYEXISTS		7009
#define			RUNTIMEERROR_B3DMATRIXNUMBERILLEGAL		7010
#define			RUNTIMEERROR_B3DMATRIXDIMENSIONWRONG	7011
#define			RUNTIMEERROR_B3DMATRIXSEGMENTWRONG		7012
#define			RUNTIMEERROR_B3DMATRIXNOTEXISTS			7013
#define			RUNTIMEERROR_B3DMATRIXNOHEIGHTMAX		7014
#define			RUNTIMEERROR_B3DMATRIXTOOLARGE			7015
#define			RUNTIMEERROR_B3DMATRIXTILEILLEGAL		7016
#define			RUNTIMEERROR_B3DMATRIXTILECOORDSWRONG	7017
#define			RUNTIMEERROR_B3DOBJECTLOADFAILED		7018
#define			RUNTIMEERROR_B3DANGLERANGEERROR			7019
#define			RUNTIMEERROR_B3DOBJECTTOOMANYLIMBS		7020
#define			RUNTIMEERROR_B3DMEMORYERROR				7029
#define			RUNTIMEERROR_B3DMUSTUSEDBOEXTENSION		7030

#define			RUNTIMEERROR_CAMERANUMBERILLEGAL		7201
#define			RUNTIMEERROR_CAMERAALREADYEXISTS		7202
#define			RUNTIMEERROR_CAMERANOTEXIST				7203
#define			RUNTIMEERROR_CAMERACANNOTCREATE			7204
#define			RUNTIMEERROR_CAMERANOZERO				7205

#define			RUNTIMEERROR_B3DLIGHTNUMBERILLEGAL		7301
#define			RUNTIMEERROR_B3DLIGHTALREADYEXISTS		7302
#define			RUNTIMEERROR_B3DLIGHTNOTEXIST			7303
#define			RUNTIMEERROR_B3DLIGHTCANNOTCREATE		7304
#define			RUNTIMEERROR_B3DLIGHTNOZERO				7305

#define			RUNTIMEERROR_LIMBNUMBERILLEGAL			7021
#define			RUNTIMEERROR_LIMBADDNUMBERILLEGAL		7022
#define			RUNTIMEERROR_LIMBNOTEXIST				7023
#define			RUNTIMEERROR_LIMBALREADYEXISTS			7024
#define			RUNTIMEERROR_LINKNOTPOSSIBLE			7025
#define			RUNTIMEERROR_LIMBMUSTCHAININSEQUENCE	7026
#define			RUNTIMEERROR_LINKSHOULDBENEW			7027
#define			RUNTIMEERROR_B3DMESHTOOLARGE			7028
// used 7029

#define			RUNTIMEERROR_B3DMODELFADEINVALID		7031
#define			RUNTIMEERROR_B3DLIMBBUTNOMESH			7032

#define			RUNTIMEERROR_PARTICLESALREADYEXISTS		7101
#define			RUNTIMEERROR_PARTICLESNOTEXIST			7102
#define			RUNTIMEERROR_PARTICLESERROR				7103
#define			RUNTIMEERROR_PARTICLESNUMBERILLEGAL		7104
#define			RUNTIMEERROR_PARTICLESCOULDNOTBECREATED	7105

#define			RUNTIMEERROR_TERRAINFAILEDCREATE		7126
#define			RUNTIMEERROR_TERRAINALREADYEXIST		7127
#define			RUNTIMEERROR_TERRAINNOTEXIST			7128
#define			RUNTIMEERROR_TERRAINFILEMUSTBESQUARE	7129
#define			RUNTIMEERROR_TERRAINNUMBERILLEGAL		7130

#define			RUNTIMEERROR_BSPLOADFAILED				7151
#define			RUNTIMEERROR_BSPNOTEXIST				7152
#define			RUNTIMEERROR_BSPALREADYEXIST			7153
#define			RUNTIMEERROR_BSPCOLLISIONNUMBERILLEGAL	7154

#define			RUNTIMEERROR_B3DMODELDOESNOTANIMATE		7601
#define			RUNTIMEERROR_B3DKEYFRAMENOTEXIST		7602
#define			RUNTIMEERROR_B3DANIMSPEEDERROR			7603
#define			RUNTIMEERROR_B3DANIMINTERPERROR			7604
#define			RUNTIMEERROR_B3DOBJECTAPPENDFAILED		7605
#define			RUNTIMEERROR_B3DOBJECTAPPENDTOOLOW		7606
#define			RUNTIMEERROR_FAILEDTOCOMPILECSG			7607

#define			RUNTIMEERROR_B3DVSHADERNUMBERILLEGAL	7701
#define			RUNTIMEERROR_B3DVSHADERCOUNTILLEGAL		7702
#define			RUNTIMEERROR_B3DVSHADERCANNOTCREATE		7703
#define			RUNTIMEERROR_B3DVSHADERSTREAMPOSINVALID	7704
#define			RUNTIMEERROR_B3DVSHADERDATAINVALID		7705
#define			RUNTIMEERROR_B3DVSHADERINVALIDSTREAM	7706
#define			RUNTIMEERROR_B3DVSHADERCANNOTASSEMBLE	7707
#define			RUNTIMEERROR_B3DVSHADERINVALID			7708

#define			RUNTIMEERROR_B3DEFFECTNUMBERILLEGAL		7721
#define			RUNTIMEERROR_B3DEFFECTNOTEXISTS			7722
#define			RUNTIMEERROR_B3DEFFECTALREADYEXISTS		7723

#define			RUNTIMEERROR_VECTORNOTEXIST				7801
#define			RUNTIMEERROR_MATRIX4NOTEXIST			7802
#define         RUNTIMEERROR_VECTORNUMBERILLEGAL        7803
#define         RUNTIMEERROR_MATRIX4NUMBERILLEGAL       7804

#define			RUNTIMEERROR_B3DFOGNOTABLE				7901
#define			RUNTIMEERROR_B3DAMBIENTPERCENTAGEERROR	7911
#define			RUNTIMEERROR_B3DCAMERARANGEERROR		7912

#define			RUNTIMEERROR_B3DSOURCEMUSTBE3DS			7931
#define			RUNTIMEERROR_B3DDESTMUSTBEX				7932

#define			RUNTIMEERROR_CANNOTSCANCURRENTDIR		8001
#define			RUNTIMEERROR_NOMOREFILESINDIR			8002
#define			RUNTIMEERROR_PATHCANNOTBEFOUND			8003
#define			RUNTIMEERROR_CANNOTMAKEFILE				8021
#define			RUNTIMEERROR_CANNOTDELETEFILE			8022
#define			RUNTIMEERROR_CANNOTCOPYFILE				8023
#define			RUNTIMEERROR_CANNOTRENAMEFILE			8024
#define			RUNTIMEERROR_CANNOTMOVEFILE				8025
#define			RUNTIMEERROR_CANNOTMAKEDIR				8101
#define			RUNTIMEERROR_CANNOTDELETEDIR			8102
#define			RUNTIMEERROR_CANNOTEXECUTEFILE			8103

#define			RUNTIMEERROR_CANNOTOPENFILEFORREADING	8201
#define			RUNTIMEERROR_CANNOTOPENFILEFORWRITING	8202
#define			RUNTIMEERROR_FILEALREADYOPEN			8203
#define			RUNTIMEERROR_FILENOTOPEN				8204
#define			RUNTIMEERROR_CANNOTREADFROMFILE			8211
#define			RUNTIMEERROR_CANNOTWRITETOFILE			8212
#define			RUNTIMEERROR_FILENUMBERINVALID			8213

#define			RUNTIMEERROR_FTPCONNECTIONFAILED		8301
#define			RUNTIMEERROR_FTPPATHCANNOTBEFOUND		8302
#define			RUNTIMEERROR_FTPCANNOTPUTFILE			8303
#define			RUNTIMEERROR_FTPCANNOTDELETEFILE		8304
#define			RUNTIMEERROR_FTPCANNOTGETFILE			8305

#define			RUNTIMEERROR_MPFAILEDTOCONNECT			8501
#define			RUNTIMEERROR_MPFAILEDTOFINDSESSION		8502
#define			RUNTIMEERROR_MPFAILEDTOSETSESSION		8503
#define			RUNTIMEERROR_MPFAILEDTOCREATEGAME		8504
#define			RUNTIMEERROR_MPFAILEDTOJOINGAME			8505
#define			RUNTIMEERROR_MPFAILEDTOSENDMESSAGE		8506

#define			RUNTIMEERROR_MPCREATEBETWEEN2AND255		8507
#define			RUNTIMEERROR_MPMUSTGIVEPLAYERNAME		8508
#define			RUNTIMEERROR_MPMUSTGIVEGAMENAME			8509
#define			RUNTIMEERROR_MPCONNECTIONNUMINVALID		8510
#define			RUNTIMEERROR_MPSESSIONNUMINVALID		8511
#define			RUNTIMEERROR_MPPLAYERNUMINVALID			8512
#define			RUNTIMEERROR_MPNOTINSESSION				8513
#define			RUNTIMEERROR_MPPLAYERNOTEXIST			8514
#define			RUNTIMEERROR_MPSESSIONEXISTS			8515
#define			RUNTIMEERROR_MPNOTCREATEDPLAYER			8516
#define			RUNTIMEERROR_MPCANNOTDELETEPLAYER		8517
#define			RUNTIMEERROR_MPTOOMANYPLAYERS			8518

#define			RUNTIMEERROR_CHECKLISTILLEGALNUMBER		9001
#define			RUNTIMEERROR_CHECKLISTNUMBERWRONG		9002
#define			RUNTIMEERROR_CHECKLISTONLYVALUES		9003
#define			RUNTIMEERROR_CHECKLISTONLYSTRINGS		9004
#define			RUNTIMEERROR_CHECKLISTNOTEXIST			9005
#define			RUNTIMEERROR_SYSCARDNOTFOUND			9011
#define			RUNTIMEERROR_SYSCOULDNOTGETTEXMEM		9012
#define			RUNTIMEERROR_SYSCOULDNOTGETVIDMEM		9013
#define			RUNTIMEERROR_SYSCOULDNOTGETSYSMEM		9014

#define			RUNTIMEERROR_SYSCOULDNOTLOADDLL			9701
#define			RUNTIMEERROR_SYSDLLNOTEXIST				9702
#define			RUNTIMEERROR_SYSDLLALREADYEXISTS		9703
#define			RUNTIMEERROR_SYSDLLCALLFAILED			9704
#define			RUNTIMEERROR_SYSDLLINDEXINVALID			9705

#define			RUNTIMEERROR_OBJECTMANAGERFAILED		9706

// Runtime Error Handler Class
class CRuntimeErrorHandler
{
	public:
		DWORD dwErrorCode;
};

#endif _CRUNTIMERUNTIMEERROR_H_